/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * @author Luisa Mercedes Portillo Díaz
 * Carné 10031		14 Julio 2011
 * Descripcion: Este programa lo que basicamente realizara es crear un objeto radio
		en donde el 'cliente' puede escoger que realizar, dependiendo de la 
		opcion que escoja del menu.
 */
import java.util.InputMismatchException;
import java.util.Scanner;

public class Driver {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        //-----------------------------------------------------------------
		// Creacion de objetos
		Scanner in = new Scanner(System.in);
		Radio rad = new Radio();
		
		//-----------------------------------------------------------------
		// Declaracion de variables
		int r, e, s;
		boolean p = false;
		
		//-----------------------------------------------------------------
		do{
			if(p == false){
				menu2();
				r = (int)obtenerNumero("Seleccione alguna opcion del menu: ", true);
				switch(r){
				case 1:
					p = true;
					r--;
					System.out.println();
					System.out.println("El radio se encuentra encendido.");
					System.out.println();
					System.out.println(rad);
					break;
				case 2:
					System.out.print("Hasta luego.");
					System.out.println();
					r=8;
					break;
				}
				//default:
			}
			else{
				menu();
				System.out.println();
				r = (int)obtenerNumero("Seleccione alguna opcion del menu: ", true);
				switch(r){
				case 1:
					//rad.power();
					System.out.println();
					System.out.println(rad);
					break;
				
				case 2:
					rad.cambio();
					System.out.println();
					System.out.println(rad);
					break;
				case 3:
					rad.fw();
					System.out.println();
					System.out.println(rad);
					break;
				case 4:
					rad.bw();
					System.out.println();
					System.out.println(rad);
					break;
				case 5:
					System.out.println();
					e = (int)obtenerNumero("Presione el boton de 1-12 para almacenar la estacion: ", true);
					e--;
					rad.store(e);
					System.out.println();
					System.out.println(rad);
					break;
				case 6:
					System.out.println();
					s = (int)obtenerNumero("Presione el boton de 1-12 para escuchar estacion almacenada: ", true);
					s--;
					rad.select(s);
					System.out.println();
					System.out.println(rad);
					break;
				case 7:
					System.out.print("Hasta luego.");
					p = false;
					System.out.println();
					System.out.println(rad);
				break;
				default:
					System.out.print("Numero invalido, ingresa de nuevo su opcion de 1-7.");
					break;
				}
			}
		}while(r!=8);
        
    } 
    // -------------------------------------------------------------------------
    // Menu
    public static void menu(){
	
	System.out.println();
	System.out.println("+--------------------------------+");
	System.out.println("+-----------    Menu   ----------+");
	System.out.println("+--------------------------------+");
	System.out.println("| 1. Encender el radio.          |");
	System.out.println("| 2. Cambiar de estacion.        |");
	System.out.println("| 3. Avanzar en estaciones.      |");
	System.out.println("| 4. Retroceder en estaciones.   |");
	System.out.println("| 5. Guardar estacion.           |");
	System.out.println("| 6. Seleccionar estacion.       |");
	System.out.println("| 7. Apagar.                     |");
	System.out.println("+--------------------------------+");
    }
		
    //--------------------------------------------------------------------------
    
    public static void menu2(){
      	System.out.println();
	System.out.println("+--------------------------------+");
	System.out.println("+--------    Bienvenido  --------+");
	System.out.println("+--------------------------------+");
	System.out.println("| 1. Encender el radio.          |");
	System.out.println("| 2. Salir.                      |");  
        System.out.println("+--------------------------------+");
        System.out.println();
    }
    
    public static double obtenerNumero(String mensaje, boolean mostrar){
        Scanner ingreso = new Scanner(System.in);
        double num = -1;
        
        System.out.print(mensaje);
        try{
            num = ingreso.nextDouble();
        }
        catch(InputMismatchException exception){
            if (mostrar)
                System.out.println("\n ERROR:  Dato invalido. \n");
        }
        finally{
            ingreso.nextLine();//Atrapar el ENTER
        }
        return num;
    }
    
    }


